package com.ruoyi.basedata.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseDO;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 告警策略对象 t_warn_strategy
 *
 * @author 告警策略
 * @date 2023-09-06
 */
@Data
@TableName("t_warn_strategy")
public class DmWarnStrategy extends BaseDO {
    private static final long serialVersionUID = 1L;

    /**
     * 平台自增主键
     */
    @Excel(name = "平台自增主键")
    @TableId
//    @JsonProperty("ID")
    private Long id;

    /**
     * 所属租户ID
     */
    @Excel(name = "所属租户ID")
    @TableField("tenant_id")
    private String tenantId;

    /**
     * 策略名称
     */
    @Excel(name = "策略名称")
//    @JsonProperty("StrategyName")
    @TableField("strategy_name")
    private String strategyName;

    /**
     * 报警对象类型，对应自定义字典表WarnTargetType
     */
    @Excel(name = "报警对象类型，对应自定义字典表WarnTargetType")
//    @JsonProperty("TargetType")
    @TableField("target_type")
    private Long targetType;

    /**
     * 报警参数类型，对应自定义字典表WarnParamType
     */
    @Excel(name = "报警参数类型，对应自定义字典表WarnParamType")
//    @JsonProperty("ParamType")
    @TableField("param_type")
    private Long paramType;

    /**
     * 是否通用，0：否，1：是，默认1
     */
    @Excel(name = "是否通用，0：否，1：是，默认1")
//    @JsonProperty("IsGeneral")
    @TableField("is_general")
    private Long isGeneral;

    //    @JsonProperty("TerminalID")
    @Excel(name = "设备编号")
    @TableField("terminal_id")
    private String terminalId;

    /** 层级ID，不通用时必填，通用时不用填 */
//    @Excel(name = "层级ID，不通用时必填，通用时不用填")
//    private String areaid;

    /**
     * 起始时间
     */
    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "起始时间", width = 30, dateFormat = "HH:mm:ss")
//    @JsonProperty("StartTime")
    @TableField("start_time")
    private Date startTime;

    /**
     * 截止时间
     */
    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "截止时间", width = 30, dateFormat = "HH:mm:ss")
//    @JsonProperty("EndTime")
    @TableField("end_time")
    private Date endTime;

    /**
     * 一级上限限制值（正常区间）
     */
    @Excel(name = "一级上限限制值", readConverterExp = "正=常区间")
//    @JsonProperty("level1_up")
    @TableField("level1_up")
    private BigDecimal level1Up;

    /**
     * 一级下限限制值（正常区间）
     */
    @Excel(name = "一级下限限制值", readConverterExp = "正=常区间")
//    @JsonProperty("Level1Down")
    @TableField("level1_down")
    private BigDecimal level1Down;

    /**
     * 二级上限限制值
     */
    @Excel(name = "二级上限限制值")
//    @JsonProperty("Level2Up")
    @TableField("level2_up")
    private BigDecimal level2Up;

    /**
     * 三级上限限制值
     */
    @Excel(name = "三级上限限制值")
//    @JsonProperty("Level3Up")
    @TableField("level3_up")
    private BigDecimal level3Up;

    /**
     * 是否启用，0：否，1：是，默认1
     */
    @Excel(name = "是否启用，0：否，1：是，默认1")
//    @JsonProperty("Enable")
    @TableField("enable")
    private String enable;

    @Excel(name = "备注")
//    @JsonProperty("Remark")
    @TableField("remark")
    private String remark;
}
